#!/bin/bash
###############################################################################
# @用例ID: 20231103-162445-114663075
# @用例名称: self-pkg-test
# @用例级别: 4
# @用例标签:
# @扩展属性:
# @用例类型: 功能测试
# @自动化: 1
# @超时时间: 0
# @用例描述: 对自研软件包的测试用例进行测试
###############################################################################
[ -z "$TST_TS_TOPDIR" ] && {
    TST_TS_TOPDIR="$(realpath "$(dirname "$0")/..")"
    export TST_TS_TOPDIR
}
source "${TST_TS_TOPDIR}/tst_common/lib/common.sh" || exit 1
###############################################################################

g_tmpdir="$(mktemp -d)"

tc_setup() {
    msg "this is tc_setup"

    # @预置条件: 提前安装git软件包
    assert_true yum install -y git
    return 0
}

do_test() {
    msg "this is do_test"
    msg "g_tmpdir=$g_tmpdir"
    local test_flag=0
    local pkg_list=$(realpath "$1")
    local pkg_num=$(cat $pkg_list | wc -l)
    # @测试步骤: 执行所有软件包的测试用例
    # @预期结果: 测试用例全部通过
    for i in $(seq $pkg_num); do 
        line=$(sed -n ${i}p $pkg_list)
        echo "$i / $pkg_num : $line"
        pushd $line
        if ls testcase/*.c >/dev/null 2>&1; then
            ./tsuite compile
        fi 
        echo "********package $line start test!********"
        if ! ./tsuite run; then
            echo "$line testcase execute fail!"
            test_flag=$((test_flag + 1))
        fi 
        sleep 1
        popd
    done
    assert_true [ $test_flag -eq 0 ]
    
    return 0
}

tc_teardown() {
    msg "this is tc_teardown"
    #rm -rfv "$g_tmpdir" || return 1
    return 0
}

###############################################################################
tst_main "$@"
###############################################################################
